# begin
#   Modules
# end
module Mets
  CORRIDA_CICLISMO = 7.0
  CRAWL = 8.0
end

# begin
#   Exercicio
# end

# begin
#   1. Calcular a área de um círculo
# end
def circle_area area
  return Math::PI * (area ** 2)
end

# begin
#   2. Calcular a area do retangulo
# end
def retangle_area base, altura
  return base * altura
end

# begin
#   3. Converter uma temperatura em graus celcius para fahrenheit
# end
def to_fahrenheit(celsius)
  return celsius * 1.8 + 32.0
end

# begin
#   7. Dados 3 números, determinar se eles podem ser os comprimentos dos lados de um triângulo.
#   OBS.: A soma dos dois menores lados deve ser maior que o maior dos lados.
# end
def triangle? a, b, c
  array = Array.new
  array = a, b, c
  array.reverse
  maior = array.first
  sum_menor = array[1] + array[2]
  if sum_menor > maior
    puts "Pode ser um triângulo"
  elsif sum_menor == (maior * 2)
    puts "Pode ser um triângulo"
  else
    puts "Não pode ser um triângulo"
  end
end

# begin
#   8. Dados os lados de um triangulo, determinar se é equilátero, isósceles ou escaleno.
# end
def triangle a, b, c
  if a == b and b == c
    "O triangulo é equilátero."
  elsif a != b and b != c and a != c
    "O triangulo é escaleno."
  else
    "O triangulo é isósceles."
  end
end

# begin
#   11. Determine E = METS x PESO x TempoAtividade / 60.
#   O algoritmo deve retornar o numero de calorias que este usuario queima por semana com exercicios.
# end
def cal peso, corre_semana, pedala_semana, nada_semana
  total = Mets::CORRIDA_CICLISMO * peso * (corre_semana/60)
  total += Mets::CORRIDA_CICLISMO * peso * (pedala_semana/60)
  puts "Por semana com corrida e ciclismo você gasta #{total}"
  total += Mets::CRAWL * peso * (nada_semana/60)
  puts "Por semana com natação você gasta #{Mets::CRAWL * peso * (nada_semana/60)}"
  puts "Total de calorias perdidas é #{total}"
end

########
# MAIN #
########
begin
  puts "Digite a questão: [1 - 11]"
  opcao = gets
  case opcao.to_i
  when 1
    puts "\t--- Determinar a área do círculo ---"
    puts "Digite o raio: "
    r = gets.to_i
    area = circle_area(r)
    puts sprintf("A área do círculo é %.2f", area)
  when 2
    puts "\t--- Determinar a área do retangulo ---"
    puts "Digite a base: "
    base = gets.to_i
    puts "Digite a altura: "
    altura = gets.to_i
    area = retangle_area(base, altura)
    puts "A área do retângulo é #{area}"
  when 3
    puts "\t ---- Converte °C para °F ----"
    puts "Digite um valor em °C: "
    celsius = gets
    converted_value = to_fahrenheit(celsius.to_f)
    puts "O valor em graus °C é #{converted_value}"
  when 7
    puts "\t--- Determinar se podem ser os lados de um triângulo ---"
    puts "Digite o lado a: "
    a = gets.to_i
    puts "Digite o lado b: "
    b = gets.to_i
    puts "Digite o lado c: "
    c = gets.to_i
    triangle?(a, b, c)
  when 8
    puts "\t--- Determinar propriedades do triângulo ---"
    puts "Digite o lado a: "
    a = gets.to_i
    puts "Digite o lado b: "
    b = gets.to_i
    puts "Digite o lado c: "
    c = gets.to_i
    puts triangle(a, b, c)
  when 11
    puts "\t--- Determinar numero de calorias gastas ---"
    puts "Digite o lado peso: "
    peso = gets.to_i
    puts "Digite o tempo de corrida por semana: "
    corre_semana = gets.to_i
    puts "Digite o tempo de ciclismo por semana: "
    pedala_semana = gets.to_i
    puts "Digite o tempo de natação por semana: "
    nada_semana = gets.to_i
    cal(peso, corre_semana, pedala_semana, nada_semana)
  else
    puts "Escolha errada."
  end
end